This invention relates to providing interactive services and, more particularly, to interactive services with multiple interfaces.
Prior arrangements for implementing interactive services with multiple interfaces employed finite-state machines (FSM) to realize the necessary service logic 201. This was achieved either explicitly, using FSM tools such as ObjecTime or StateCharts, or implicitly, using programming languages/technologies such as C, C++, Perl or Microsoft Active Server Pages (ASP).
In order to support natural language understanding interaction with users, services with flexible interfaces need to allow different ordering of inputs, incomplete information, correction of information and the return of control to previous points in the service. Finite-state machine based approaches, however, cannot support these desired aspects in a modular fashion. Indeed, every possible ordering of inputs needs to be explicitly specified, resulting in an exponentially increasing number of states and transitions in the FSM. Additionally, including the other desirable aspects noted above further increases the size and complexity of the FSM. Moreover, it is extremely difficult to modify the FSM; for example, the number of modifications required to the FSM to add another input can be exponential in the size of the input set.
Prior arrangements employed to provide spoken dialog interaction are focused on a single, spoken language interface, which is limiting.
Problems and limitations of prior known arrangements for providing interactive services are overcome by employing a modular approach to implementing interactive services by employing a single service logic and a plurality, i.e., multiplicity, of user interfaces including at least one user interface having natural language understanding. The use of a single service logic having a natural language understanding facilitates supporting natural language understanding interaction with users through use of interfaces and also allows at least the different ordering of inputs from user interfaces, and/or incomplete information from user interfaces, and/or correction of information from user interfaces, and/or the return of control to prior points in the service in response to a request via a user interface.
This is realized, in an embodiment of the invention, by employing a single interactive service logic that can interface to a plurality of user interfaces including at least one user interface having natural language understanding capability. The single interactive service logic advantageously employs xe2x80x9creactive constraint graphsxe2x80x9d, i.e., a form of event-driven graph, in which nodes contain a set of constraints on events. The reactive constraint graphs are used as a way of providing flexibility in allowing the different ordering of inputs from user interfaces, and/or incomplete information from user interfaces, and/or correction of information from user interfaces, and/or the return of control to prior points in the service in response to a request from a user interface. Specifically, control progresses from a node to a derivative node, i.e., xe2x80x9cchildxe2x80x9d, only when all the constraints in the set on the node have been satisfied. A single set of constraints implicitly supports a significant number of the possible different orderings of inputs. Incomplete information is supported because the constraints in the set are evaluated as soon as possible. Correction of information is supported because information in the constraint set is updated upon receipt of new information. Indeed, use of the reactive constraint graphs allows nodes to be labeled, and allows control to revert to a prior node, i.e., ancestor, hence allowing the user to go back to prior points in the service. New inputs can be added to the constraint sets with a complexity polynomial of the order of the input set.
This inventive approach allows the addition or deletion of inputs and/or constraints in a modular fashion. In turn, this greatly simplifies the design and implementation of interactive services with flexible interfaces, including those based on a natural language understanding.